package com.joysuch.wwyt.risk.entity.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.joysuch.wwyt.common.entity.UserDataEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author jingwk
 * @since 2021-05-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("wwyt_risk_point")
@ApiModel(value="RiskPoint对象", description="")
public class RiskPointDto extends UserDataEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "ID", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "名称")
    @TableField("NAME")
    private String name;

    @ApiModelProperty(value = "编号")
    @TableField("CODE")
    private String code;

    @ApiModelProperty(value = "风险区域ID")
    @TableField("RISK_DISTRICT_ID")
    private Long riskDistrictId;

    @ApiModelProperty(value = "描述")
    @TableField("DESCRIPTION")
    private String description;

    @ApiModelProperty(value = "状态")
    @TableField("STATE")
    private Integer state;

    @ApiModelProperty(value = "风险要素(人，物，环，管)")
    private String riskFactor;

    @ApiModelProperty(value = "风险等级")
    @TableField("RISK_LEVEL")
    private Integer riskLevel;

    @ApiModelProperty(value = "安全警示标志")
    private String safeWarnMark;

    @ApiModelProperty(value = "辨识人员")
    private Long identifyUserId;

    @ApiModelProperty(value = "责任人员")
    private Long dutyUserId;

    @ApiModelProperty(value = "审核状态")
    private Boolean status;

    @ApiModelProperty(value = "审核意见")
    private String auditOpinion;

    @ApiModelProperty(value = "审核人员")
    private Long auditUserId;

    @ApiModelProperty(value = "审核时间")
    private LocalDateTime auditDateTime;

    @ApiModelProperty(value = "管控层级")
    @TableField("CONTROL_LEVEL_ID")
    private Long controlLevelId;

    @ApiModelProperty(value = "责任部门")
    @TableField("RESPONSIBLE_DEPART_ID")
    private Long responsibleDepartId;

    @ApiModelProperty(value = "责任人")
    @TableField("RESPONSIBLE_PERSON_ID")
    private Long responsiblePersonId;

    @ApiModelProperty(value = "SCL评估状态")
    @TableField("SCL_EVALUATION_STATE")
    private Integer sclEvaluationState;

    @ApiModelProperty(value = "JHA评估状态")
    @TableField("JHA_EVALUATION_STATE")
    private Integer jhaEvaluationState;

    @ApiModelProperty(value = "最近一次SCL评估ID")
    @TableField("LAST_SCL_EVALUATION_ID")
    private Long lastSclEvaluationId;

    @ApiModelProperty(value = "最近一次JHA评估ID")
    @TableField("LAST_JHA_EVALUATION_ID")
    private Long lastJhaEvaluationId;

    @ApiModelProperty(value = "上一次评估时间")
    @TableField("LAST_EVALUATION_TIME")
    private LocalDateTime lastEvaluationTime;

    @ApiModelProperty(value = "容易发生的事故类型")
    @TableField("ACCIDENT_TYPE")
    private String accidentType;

    @ApiModelProperty(value = "类型: 设备设施,作业活动")
    private String type;

    @ApiModelProperty(value = "标准")
    private String standard;

    @ApiModelProperty(value = "不符合标准 情景及后果")
    private String unstandardSituationConsequence;

    @ApiModelProperty(value = "关联模块")
    @TableField("RELATED_MODULE")
    private String relatedModule;

    @ApiModelProperty(value = "关联模块ID")
    @TableField("RELATED_MODULE_ID")
    private Long relatedModuleId;

    @ApiModelProperty(value = "子类型")
    @TableField("SUB_TYPE")
    private String subType;

    @ApiModelProperty(value = "是否是风险点库0=否，1=是")
    private Integer shared;

    @ApiModelProperty(value = "0不显示;1显示")
    private Integer showState;

    @ApiModelProperty(value = "所属位置")
    private String location;

    @ApiModelProperty(value = "固有风险等级")
    private Integer stableRiskLevel;

    @ApiModelProperty(value = "控制风险等级")
    private Integer controlRiskLevel;

    @ApiModelProperty(value = "风险点评估值")
    private String pointEvaluationValue;

    @ApiModelProperty(value = "下一次评估时间")
    private LocalDateTime nextEvaluationDate;

    @ApiModelProperty(value = "风险分区中心点经度")
    private String x;

    @ApiModelProperty(value = "风险分区中心点纬度")
    private String y;

    @ApiModelProperty(value = "所有方法评估人id(固有,控制)")
    private String evaluatorIdJson;

    @ApiModelProperty(value = "风险区域ID")
    private String riskDistrictName;


}
